This application contains subject matter that is protected by copyright. All rights are reserved.
1. Technical Field
The present invention relates generally to exporting a uniform application programming interface (API) for a set of underlying transport mechanisms used in a content delivery network (CDN).
2. Description of the Related Art
It is known in the art to delivery HTTP, streaming media and applications over an Internet content delivery network (CDN or ICDN). As is well-known, an ICDN service provider typically operates a plurality of content servers, and sets of servers may be organized as a “region.” An ICDN region typically comprises a set of one or more content servers that share a common backend, e.g., a LAN, and that are located at or near an Internet access point. Thus, for example, a typical ICDN region may be colocated within an Internet Service Provider Point of Presence (PoP). A representative ICDN content server is a Pentium-based caching appliance running an operating system (e.g., Linux, Windows NT, Windows 2000) and having suitable RAM and disk storage for ICDN applications and content delivery network content (e.g., Web content, streaming media and applications). The ICDN typically also includes network agents that monitor the network as well as the server loads. Map maker software receives data generated from the network agents and periodically creates maps that dynamically associate IP addresses (e.g., the IP addresses of client-side local name servers) with the ICDN regions. In one type of service offering, requests for content that has been tagged for delivery from the ICDN are directed to the “best” region (preferably using a map-driven DNS request routing mechanism) and to a content server within the region that is not overloaded and that is likely to host the requested content. One such ICDN is provided by Akamai Technologies, Inc. of Cambridge, Mass.
The Internet CDN may also provide live and on-demand streaming media. A live stream is typically captured and encoded by a content provider and sent to an entry point server in the CDN. The stream is delivered from the entry point to the multiple edge servers, which in turn serve the content to the requesting end users. The delivery of media packets from the entry point to the edge servers must be resilient to network failures and loss and requires the ability to route packet flows around congested and down links. Further, the packets must be delivered without significant delay and jitter, as a packet arriving too late or out-of-order is not useful in the playback. To address these concerns, the CDN may incorporate various types of information dispersal techniques that allow the data comprising a given stream to be delivered effectively. According to one such technique, the data is transmitted on multiple redundant paths to enable a given edge server to construct a clean copy of the stream when some of the paths are down or lossy.
The implementation and management of a global distributed network (e.g., such as an ICDN) is a complex, costly and difficult endeavor. A large CDN, such as the CDN operated by Akamai Technologies, has over ten thousand servers operating in over one thousand networks in over 60 countries. Typically, the CDN service provider (CDNSP) does not own infrastructure (networks, buildings, etc.) on which the CDN servers run, nor does the CDNSP necessarily have the capability of administrating those servers that are often deployed throughout the world. Rather, the service provider must deploy and then remotely administer these services and applications as a virtual network overlaid on the existing (often third party owned and controlled) physical networks and data centers. The problem is exacerbated by the fact that the CDN service provider must run many different types of applications, and those applications support numerous different data types having different data transport requirements. Thus, certain types of data (e.g., local performance information, mapping directions, and the like) are small and frequent. A small amount of loss is easily tolerated and the value of a particular piece of data decays exponentially with time (i.e., new data gets produced that overrides the old one very frequently). Other types of data are more critical to the operation of the CDN, or they may control behavior that guarantees that the CDN operates appropriately within the context of the overall Internet. Such data does not change very frequently but, nevertheless, its delivery must be guaranteed by the infrastructure. Finally, certain other data is extremely voluminous and only needs to be communicated to a small set of nodes.
Given the disparate types of applications, datatypes and transport requirements, it is difficult to implement an Internet content delivery network that is scalable, reliable and that can be managed in an effective manner. The present invention addresses this need.